package com.youlai.boot.system.model.form;

import java.io.Serial;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.*;

/**
 * 原料追溯表单对象
 *
 * @author liwenbing
 * @since 2025-04-09 13:23
 */
@Getter
@Setter
@Schema(description = "原料追溯表单对象")
public class SysDianciMaterialRetrospectForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private Long id;

    @Schema(description = "批次号")
    @NotBlank(message = "批次号不能为空")
    @Size(max=64, message="批次号长度不能超过64个字符")
    private String productionBatch;

    @Schema(description = "原料类型")
    @NotNull(message = "原料类型不能为空")
    private Integer materialType;

    @Schema(description = "供应商")
    @NotBlank(message = "供应商不能为空")
    @Size(max=64, message="供应商长度不能超过64个字符")
    private String supplier;

    @Schema(description = "数量")
    @NotBlank(message = "数量不能为空")
    @Size(max=64, message="数量长度不能超过64个字符")
    private String num;

    @Schema(description = "单位")
    @NotBlank(message = "单位不能为空")
    @Size(max=64, message="单位长度不能超过64个字符")
    private String unit;

    @Schema(description = "质检状态")
    @NotNull(message = "质检状态不能为空")
    private Integer qualityState;

    @Schema(description = "入库时间")
    @NotNull(message = "入库时间不能为空")
    private LocalDateTime stockDate;

    @Schema(description = "备注")
    @Size(max=255, message="备注长度不能超过255个字符")
    private String remark;


}
